package mjc.tds;

import java.util.HashMap;

/**
 * implémente la tds de la classe à compiler,
 * il contient la liste de tout les objets 
 * que la classe à compiler peut utiliser
 * @author izineela
 */
public class TDS extends HashMap<String,INFOClasse> {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private TDS parente ;
	
	public TDS(){
		this(null);
	}
	
	public TDS(TDS p){
		super();
		this.setParente(p);
	}
	
	/**
	 * ajout des informations présentes dans la tds
	 * donnée en argument
	 * @param tds
	 * @return renvoie la tds mis-à-jour
	 */
	public TDS addTDS(TDS tds){
		this.putAll(tds);
		return this;
	}
	
	public INFOClasse chercherLocalement(String ident){
		return this.get(ident);
	}
	
	public INFOClasse chercherGlobalement(String ident){
		INFOClasse i = this.chercherLocalement(ident);
		if ( i == null ){
			if ( parente != null )
				return parente.chercherLocalement(ident);
		}
		return i;
	}
	
	public void inserer(String ident, INFOClasse i){
		put(ident,i);
	}
	
	/**
	 * @param parente the parente to set
	 */
	public void setParente(TDS parente) {
		this.parente = parente;
	}
	/**
	 * @return the parente
	 */
	public TDS getParente() {
		return parente;
	}
}
